;-- MTP модуль Мавки для роботи із статистичними функціями Кравчук Артемій, ArtemiyKra@gmail.com, https://github.com/ArtemiiKravchuk Версія 0.0.2, останні зміни 29.03.2023 --; модуль статистика ;; визначити, чи містить список даний елемент (логічний результат інвертується, тоді чи_не_містить), з оновленням Мавки замінити на умову "містить" дія чи_не_містить(вхідний_список, шукоме_значення) результат = так перебрати вхідний_список як елемент якщо елемент == шукоме_значення результат = ні кінець кінець результат кінець ;; знайти середнє арифметичне значення списку чисел, (а+б+с+д)/4 дія середнє_арифметичне(вхідні_дані список) число сума = 0 перебрати вхідні_дані як елемент якщо елемент є число сума = сума + елемент інакше впасти "статистика.середнє_арифметичне() приймає тільки список чисел, '"+елемент+"' не є числом." кінець кінець сума / вхідні_дані.довжина() кінець ;; знайти середнє геометричне значення списку чисел, корінь4(а*б*с*д) дія середнє_геометричне(вхідні_дані список) число добуток = 1 перебрати вхідні_дані як елемент якщо елемент є число добуток = добуток * елемент інакше впасти "статистика.середнє_геометричне() приймає тільки список чисел, '"+елемент+"' не є числом." кінець кінець добуток ** (1/вхідні_дані.довжина()) кінець ;; знайти середнє гармонійне значення списку чисел, 4/(1/а+1/б+1/с+1/д) дія середнє_гармонійне(вхідні_дані список) число сума = 0 перебрати вхідні_дані як елемент якщо елемент є число сума = сума + (1/елемент) інакше впасти "статистика.середнє_гармонійне() приймає тільки список чисел, '"+елемент+"' не є числом." кінець кінець вхідні_дані.довжина() / сума кінець ;; знайти медіану серед списку чисел дія медіана(вхідні_дані список) число перебрати вхідні_дані як елемент якщо елемент не є число впасти "статистика.медіана() приймає тільки список чисел, '"+елемент+"' не є числом." кінець кінець вхідні_дані.сортувати() довжина = вхідні_дані.довжина() якщо довжина % 2 == 1 вернути вхідні_дані[довжина/2-0.5] інакше вернути (вхідні_дані[довжина/2-1]+вхідні_дані[довжина/2])/2 кінець кінець ;; знайти низьку медіану серед списку чисел ( якщо вибір стоїть між двома числами, вибирається менше ) дія низька_медіана(вхідні_дані список) число перебрати вхідні_дані як елемент якщо елемент не є число впасти "статистика.медіана() приймає тільки список чисел, '"+елемент+"' не є числом." кінець кінець вхідні_дані.сортувати() довжина = вхідні_дані.довжина() якщо довжина % 2 == 1 вернути вхідні_дані[довжина/2-0.5] інакше вернути вхідні_дані[довжина/2-1] кінець кінець ;; знайти високу медіану серед списку чисел ( якщо вибір стоїть між двома числами, вибирається більше ) дія висока_медіана(вхідні_дані список) число перебрати вхідні_дані як елемент якщо елемент не є число впасти "статистика.медіана() приймає тільки список чисел, '"+елемент+"' не є числом." кінець кінець вхідні_дані.сортувати() довжина = вхідні_дані.довжина() якщо довжина % 2 == 1 вернути вхідні_дані[довжина/2-0.5] інакше вернути вхідні_дані[довжина/2] кінець кінець ;; знайти моду для списку чисел ( якщо декілька мод, повертає першу знайдену ) дія мода(вхідні_дані список) число унікальні_елементи = [] перебрати вхідні_дані як елемент якщо чи_не_містить(унікальні_елементи, елемент) унікальні_елементи.додати(елемент) кінець кінець максимальна_кількість = 0 мода = пусто перебрати унікальні_елементи як значення кількість = 0 перебрати вхідні_дані як елемент якщо елемент == значення кількість += 1 кінець кінець якщо кількість > максимальна_кількість максимальна_кількість = кількість мода = значення кінець кінець мода кінець ;; знайти мультимоду для списку чисел ( якщо декілька мод, повертає всі як список в порядку знайдення; поверне список із 1 елементу якщо мода ) дія мультимода(вхідні_дані список) число унікальні_елементи = [] перебрати вхідні_дані як елемент якщо чи_не_містить(унікальні_елементи, елемент) унікальні_елементи.додати(елемент) кінець кінець максимальна_кількість = 0 мода = [] перебрати унікальні_елементи як значення кількість = 0 перебрати вхідні_дані як елемент якщо елемент == значення кількість += 1 кінець кінець якщо кількість == максимальна_кількість мода.додати(значення) кінець якщо кількість > максимальна_кількість максимальна_кількість = кількість мода = [значення] кінець кінець мода кінець дати середнє_арифметичне дати середнє_геометричне дати середнє_гармонійне дати медіана дати низька_медіана дати висока_медіана дати мода дати мультимода кінець дати статистика